import ast
import app_config


def check_content_review_image(data=None, resolution=None):
    # 1. 先处理字符串类型的data，转换为字典
    if isinstance(data, str):
        try:
            data = ast.literal_eval(data)  # 字符串转字典
        except SyntaxError:
            print("错误：data字符串格式不正确，无法转换为字典")
            return False  # 或根据需求返回其他默认值

    # 2. 处理data为None的情况，设置默认值
    if data is None:
        data = {'violence': 0.401, "sexual": 0.4}

    # 3. 确保data是字典类型（防御性检查）
    if not isinstance(data, dict):
        print("错误：data必须是字典或可转换为字典的字符串")
        return False

    if resolution is None:
        # 4. 定义各内容类别的阈值
        resolution = app_config.RESOLUTION_CONTENT_REVIEW

    # 5. 遍历检查
    for key, value in data.items():
        # 额外检查：确保value是数值类型（避免字符串比较报错）
        if not isinstance(value, (int, float)):
            print(f"警告：{key}的值不是数值类型，跳过检查")
            continue
        if key in resolution:
            if value > resolution[key]:
                return True  # 有一个超过阈值就返回True
    return False
